Serverless computing is a relatively new form of service provision for running applications and is growing in popularity. Serverless computing is a service that is offered by cloud computing providers in which the services are provided on demand, rather than continuously in an always-ready state in case the services are needed. In a serverless computing environment, the service provider runs an application on a server only for as long as the user requires work to be done by the application. Unlike a classic cloud service provision, no long-running server is left executing the application in the cloud server environment.
One serverless cloud provider is International Business Machines Corporation (IBM®) which offers a service called OpenWhisk®.
The provider starts up a service, from no persistent state, when an ‘event’ occurs that is configured to trigger the service to run in order to handle the event.
Serverless computing models often employ a microservice framework. A microservice is a small, modular service that can be joined and connected with other small, modular services to create a technology stack. Instead of deploying one large application, a number of smaller modular applications are used, which can be called and also call each other and/or be controlled via an application programming interface (API), in particular a REST-ful API, where REST stands for Representational State Transfer. One advantage of a microservice approach is that the different modules can be written in different languages.
Although large numbers of enterprise application programmers are familiar with the Java® programming environment, and in particular with the Java platform enterprise edition (JEE), JEE is not intrinsically well suited to a serverless computing environment, because the Java virtual machine (JVM) and JEE services are optimized for long running applications. JEE is a platform of modular components that each run on an application server. Specifically, there is a time penalty when an application is started, so frequently starting and stopping applications, as is needed in a serverless computing environment, is not efficient, which has led to a relatively low adoption of Java and JEE for serverless computing environments, such as the WebSphere® Application Server (WAS) offered by International Business Machines Corporation (IBM).